package com.lsw.jgyf.ui.fragment;

import android.text.TextUtils;

import com.lsw.dialog.DialogProgress;
import com.lsw.jgyf.httpapi.HttpApi;
import com.lsw.jgyf.inject.Constants;
import com.lsw.jgyf.ui.base.presenter.BasePresenter;
import com.lsw.shareUser.ShareUserInfoUtil;
import com.lsw.util.LogUtils;
import com.lsw.util.StringUtil;
import com.lsw.util.ToastUtil;

import javax.inject.Inject;

import io.reactivex.disposables.Disposable;

/**
 * Created by Administrator on 2018/7/10 0010.
 */

public class RegisterDianyuanFragmentPresenter extends BasePresenter<RegisterDianyuanFragmentContract.View> implements RegisterDianyuanFragmentContract.Presenter {
    @Inject
    HttpApi httpApi;

    @Inject
    public RegisterDianyuanFragmentPresenter() {

    }

    @Override
    public void getData() {
        mView.setData();
    }

    @Override
    public void sendCode(String phone, String type) {
        if (StringUtil.isNullOrEmpty(phone)) {
            ToastUtil.showToast(mContext, "请输入手机号！");
            return;
        }
        if (!StringUtil.checkPhoneNum(phone)) {
            ToastUtil.showToast(mContext, "请输入正确的手机号！");
            return;
        }
        DialogProgress progress = new DialogProgress(mContext);
        progress.show();
        Disposable disposable = httpApi
                .SendCode(phone, type)
                .subscribe(baseBean -> {
                    progress.dismiss();
                    if (baseBean.getStatus() == Constants.CODE_SUCESS) {
                        ToastUtil.showToast(mContext, baseBean.getMessage().toString());
                        mView.sendSucess();
                    } else {
                        ToastUtil.showToast(mContext, baseBean.getMessage().toString());
                    }
                }, throwable -> {
                    progress.dismiss();
                    LogUtils.e("TAG_Enroll", throwable.getMessage());
                });
        mCompositeDisposable.add(disposable);
    }
    @Override
    public void getAddress() {

    }

    @Override
    public void chooseShop() {
        DialogProgress progress = new DialogProgress(mContext);
        progress.show();
        Disposable disposable = httpApi
                .getShop()
                .subscribe(baseBean -> {
                    progress.dismiss();
                    if (baseBean.getStatus() == Constants.CODE_SUCESS) {
                        mView.setShop(baseBean.getData());
                    } else {
                        ToastUtil.showToast(mContext, baseBean.getMessage().toString());
                    }
                }, throwable -> {
                    progress.dismiss();
                    LogUtils.e("TAG_Enroll", throwable.getMessage());
                });
        mCompositeDisposable.add(disposable);
    }

    @Override
    public void register(String store_id, String username, String code, String password, String password_confirmation, String phone) {
        if (StringUtil.isNullOrEmpty(username)) {
            ToastUtil.showToast(mContext, "请输入用户名！");
            return;
        }
        if (StringUtil.isNullOrEmpty(phone)) {
            ToastUtil.showToast(mContext, "请输入手机号！");
            return;
        }
        if (!StringUtil.checkPhoneNum(phone)) {
            ToastUtil.showToast(mContext, "请输入正确的手机号！");
            return;
        }
        if (StringUtil.isNullOrEmpty(code)) {
            ToastUtil.showToast(mContext, "请输入验证码！");
            return;
        }
        if (StringUtil.isNullOrEmpty(store_id)) {
            ToastUtil.showToast(mContext, "请选择店铺！");
            return;
        }
        if (StringUtil.isNullOrEmpty(password)) {
            ToastUtil.showToast(mContext, "请设置密码！");
            return;
        }
        if (StringUtil.isNullOrEmpty(password_confirmation)) {
            ToastUtil.showToast(mContext, "请设置确认密码！");
            return;
        }
        if (!TextUtils.equals(password, password_confirmation)) {
            ToastUtil.showToast(mContext, "两次密码不一致！");
            return;
        }
        DialogProgress progress = new DialogProgress(mContext);
        progress.show();
        Disposable disposable = httpApi
                .registerDianyuan(store_id, username, code, password, password_confirmation, phone)
                .subscribe(baseBean -> {
                    progress.dismiss();
                    if (baseBean.getStatus() == Constants.CODE_SUCESS) {
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.ID, baseBean.getData().getId() + "");
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.USERNAME, baseBean.getData().getUsername());
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.MOBILE, baseBean.getData().getMobile());
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.STORE_ID, baseBean.getData().getStore_id() + "");
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.IMG_ID, baseBean.getData().getImg_id() + "");
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.TYPE, baseBean.getData().getType() + "");
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.STATUS, baseBean.getData().getStatus() + "");
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.CREATE_TIME, baseBean.getData().getCreate_time());
                        ShareUserInfoUtil.getInstance(mContext).setString(ShareUserInfoUtil.UPDATE_TIME, baseBean.getData().getUpdate_time());
                        mView.registerSucess();
                    } else {
                        ToastUtil.showToast(mContext, baseBean.getMessage().toString());
                    }
                }, throwable -> {
                    progress.dismiss();
                    LogUtils.e("TAG_Enroll", throwable.getMessage());
                });
        mCompositeDisposable.add(disposable);
    }
}
